(defmacro def-head-predicate (sym)
  `(fn ,($ sym '?) (x)
     (& (cons? x)
	    (eq ',sym x.)
        x)))
